home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
magic
/
d
/
magicbit.d
< prev
next >
Wrap
Text File
|
1997-10-26
|
3KB
|
64 lines
(*----------------------------------------------------------------------*
* *
* MAGIC Modula's All purpose GEM Interface Cadre *
* ÿ ÿ ÿ ÿ ÿ *
*----------------------------------------------------------------------*
* Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
*----------------------------------------------------------------------*
* Dieses Modul ist urheberrechtlich geschtzt. *
* *
* Die Verffentlichung des Quelltextes oder Teilen daraus in schrift- *
* licher Form, insbesondere in Zeitschriften, sowie die Verbreitung *
* ber Public-Domain-Hndler bedarf der ausdrcklichen schriftlichen *
* Genehmigung des Autors! *
* *
* Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
* zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins- *
* besondere dieser Urheberrechts-Vermerk nicht verndert wird, und *
* durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor *
* behlt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
* von Grnden zu widerrufen. *
*----------------------------------------------------------------------*)
(*----------------------------------------------------------------------*
* MagicBitOps Bit-Operationen leichtgemacht *
* *
* ACHTUNG: *
* -------- *
* Durch den ARRAY OF LOC kann zwar einiges in die Prozeduren rein- *
* stopfen, es werden aber nur Werte verarbeitet die 1, 2 oder 4 Bytes *
* gro sind! Gedacht sind die Prozeduren fr einfache Werte wie BYTE, *
* INTEGER, CARDINAL, LONGINT und LONGCARD. *
*----------------------------------------------------------------------*)
DEFINITION MODULE MagicBitOps;
FROM MagicSys IMPORT Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
TYPE Operation = (and, or, xor);
PROCEDURE BitOp (op: Operation; c1, c2: ARRAY OF LOC; VAR val: ARRAY OF LOC);
PROCEDURE SetBit (pos: sCARDINAL; VAR val: ARRAY OF LOC);
(* Setzt ein Bit in val an pos *)
PROCEDURE ClearBit (pos: sCARDINAL; VAR val: ARRAY OF LOC);
(* Lscht das Bit pos in val *)
PROCEDURE IsSet (pos: sCARDINAL; val: ARRAY OF LOC): BOOLEAN;
(* TRUE, wenn ein Bit gesetzt ist *)
PROCEDURE ShiftLeft (VAR val: ARRAY OF LOC; num: sCARDINAL);
PROCEDURE ShiftRight (VAR val: ARRAY OF LOC; num: sCARDINAL);
(* Links- bzw. Rechts-Shiften von val um num Positionen *)
END MagicBitOps.